package com.lagou.changePassword;

import com.lagou.model.User;
import com.lagou.server.ServerDao;
import com.lagou.server.ServerInitClose;

import java.io.IOException;
import java.util.List;

/**
 * 编程实现学生修改密码功能
 */
public class Change {

    /**
     * 使用合成复用原则
     */
    private ServerInitClose sic;
    private ServerDao sd;

    /**
     * 通过构造方法实现成员变量的初始化
     * @param sic
     */
    public Change(ServerInitClose sic, ServerDao sd){
        this.sic = sic;
        this.sd = sd;
    }

    public void changePassword() throws IOException {
        //调用方法提取文件中存储的学生信息
        List<User> list = sd.loadStudentData();
        //获取用户名信息并对照
        String name = sic.getBr().readLine();
        //遍历所有用户信息
        for(int i = 0; i < list.size(); ++i){
            //如用户名相同则替换用户输入的密码
            if(list.get(i).getUserName().equals(name)) {
                //获取用户输入修改后的密码
                String password = sic.getBr().readLine();
                //利用用户名和修改后的密码创建User类的对象
                User user = new User(name, password);
                //添加到集合中
                list.set(i, user);
                //调用方法将新的学生信息记录到文件中
                sd.saveStudentDate(list);
                //发送结果到客户端
                sic.getPs().println("success");
                break;
            }else {
                sic.getPs().println("fail");
            }
        }

    }
}
